package com.cxhc.system.service.cockpit;

import com.cxhc.system.domain.cockpit.RpFeedback;
import com.cxhc.system.domain.cockpit.RpFeedbackFlow;

import java.util.List;
import java.util.Map;

/**
 * 报修Service接口
 * 
 * @author Dhq
 * @date 2024-08-21
 */
public interface IRpFeedbackService 
{
    /**
     * 查询报修
     * 
     * @param ID 报修主键
     * @return 报修
     */
    public RpFeedback selectRpFeedbackByID(Long ID);

    /**
     * 查询报修
     *
     * @param ID 报修主键
     * @return 报修
     */
    public RpFeedback selectRpFeedbackByIDForApp(Long ID);

    /**
     * 查询报修列表
     * 
     * @param rpFeedback 报修
     * @return 报修集合
     */
    public List<RpFeedback> selectRpFeedbackList(RpFeedback rpFeedback);

    /**
     * 查询报修列表
     *
     * @param rpFeedback 报修
     * @return 报修集合
     */
    public List<RpFeedback> selectRpFeedbackListForCockpit(RpFeedback rpFeedback);

    /**
     * 流转
     * 
     * @param rpFeedbackFlow 流转
     * @return 结果
     */
    public int transfer(RpFeedbackFlow rpFeedbackFlow);

    /**
     * 流转
     *
     * @param rpFeedbackFlow 流转
     * @return 结果
     */
    public int back(RpFeedbackFlow rpFeedbackFlow);

    /**
     * 受理
     *
     * @param rpFeedbackFlow 受理
     * @return 结果
     */
    public int acceptance(RpFeedbackFlow rpFeedbackFlow);

    /**
     * 完休
     *
     * @param rpFeedbackFlow 完休
     * @return 结果
     */
    public int over(RpFeedbackFlow rpFeedbackFlow);

    /**
     * 新增报修
     *
     * @param rpFeedback 新增报修
     * @return 结果
     */
    public int insertRpFeedback(RpFeedback rpFeedback);

    /**
     * 修改报修
     * 
     * @param rpFeedback 报修
     * @return 结果
     */
    public int updateRpFeedback(RpFeedback rpFeedback);

    /**
     * 批量删除报修
     * 
     * @param IDs 需要删除的报修主键集合
     * @return 结果
     */
    public int deleteRpFeedbackByIDs(Long[] IDs);

    /**
     * 删除报修信息
     * 
     * @param ID 报修主键
     * @return 结果
     */
    public int deleteRpFeedbackByID(Long ID);

    /**
     * 事件统计
     *
     * @return 事件统计
     */
    Map<String,String> selectEventNum(String startTime,String endTime,String month);

    /**
     * 事件统计
     *
     * @return 事件统计
     */
    Map<String,Map<String,Object>> eventNumForWeek(String isAlong);

    /**
     * 事件统计
     *
     * @return 事件统计
     */
    List<Map<String,Object>> eventNumForUser(String isAlong,String status);

    /**
     * 事件统计
     *
     * @return 事件统计
     */
    Map<String,String> eventNumByAcceptEntID(String startTime,String endTime, String isOver);

    /**
     * 事件统计
     *
     * @return 事件统计
     */
    Map<String,String> eventNumByEntID(String startTime,String endTime);

    /**
     * 事件统计
     *
     * @return 事件统计
     */
    Map<String,String> eventNumByRepairType(String startTime,String endTime);

}
